package com.google.common.annotations;

import java.lang.annotation.*;

/**
 * 被该注解标注的 TYPE 或者 METHOD的返回值 ，可以和 <a href="http://code.google.com/webtoolkit/">Google Web Toolkit</a> 一起使用
 * 谷歌网页开发工具(GWT)
 * 该注解可以用于暗示 某个TYPE 或者 METHOD的返回值 是GWT可序列化的(GWT serializable)
 */
@Retention(RetentionPolicy.CLASS)
// 该注解只能作用于TYPE 或 METHOD上
@Target({ElementType.TYPE, ElementType.METHOD})
@Documented
@GwtCompatible
public @interface GwtCompatible {
    /**
     * 该注解含有一个bool类型的属性值--serializable，默认值为false
     * 当该值为true时，代表 被注解类/方法的返回值 是 GWT serializable 的。
     *
     * @return
     */
    boolean serializable() default false;

    /**
     * 该注解含有一个bool类型的属性值--emulated，默认值为false
     * 当该值为true时，代表 被注解的类/方法的返回值 是被GWT模拟的。
     * @return
     */
    boolean emulated() default false;
}
